Link to this headingPerl
Link to this headingCGI
Link to this headingLists
CGI when given multiple parameters (e.g., index.cgi?foo=1&foo=2&bar=a&bar=b) will return a list.
When using a list as a parameter in a hash table
@list = (, , );
$hash = { => ,
=> ,
=> @list};
$hash;
{ => ,
=> ,
=> ,
=> };
In the example below, the realname parameter when given multiple values will be made into a list. This can be used to overwrite the login_name of the hash table.
Example:
my $otheruser = ->({
login_name => $login_name,
realname => $cgi->(),
cryptpassword=> $password})
a=confirm_new_account&=[REGISTRATION_TOKEN]&=Password1!&=Password1!&=Lolzor&=login_name&=@bugzilla.
my $otheruser = ->({
login_name => $login_name,
realname => ,
login_name =>
cryptpassword => $password });
Link to this headingCode Injection
Code Injection with eval require
Sample Code:
;
;
;
{
my $class = ;
for my $module (@_)
{
}
}
1;
Sample Exploit: